前言
最近公司使用Blazor(UI:Telerik UI For Blazor)進行專案開發,開發過程中踩到坑,
於是寫下來與大家分享(❁´◡`❁)
Blazor WebAssembly Localization 繁體化
Program.cs
builder.Services.AddTelerikBlazor();
#region Localization Part 1
builder.Services.AddSingleton(typeof(ITelerikStringLocalizer), typeof(CustomStringLocalizer));
var host = builder.Build();
await SetCultureAsync(host);
await host.RunAsync();
#endregion
#region 設定語系
static async Task SetCultureAsync(WebAssemblyHost host)
{
var cultureName = "zh-TW"; //需要建立相對應的resx檔案
if (cultureName != null)
{
var culture = new CultureInfo(cultureName);
CultureInfo.DefaultThreadCurrentCulture = culture;
CultureInfo.DefaultThreadCurrentUICulture = culture;
}
}
#endregion
2.建立 CustomStringLocalizer.cs
之後可用來切換語系用
namespace BlazorApp1.Client.Services
{
public class CustomStringLocalizer : ITelerikStringLocalizer
{
public string this[string name]
{
get
{
return GetStringFromResource(name);
}
}
public string GetStringFromResource(string key)
{
return TelerikMessages.ResourceManager.GetString(key, TelerikMessages.Culture);
}
}
}
3.建立 TelerikMessages.zh-TW.resx
檔案
我是使用官方給的範例文件裡的英文版本去更改為繁體的 telerik-blazor-ui
4.修改resx裡面的文件路徑為自己的專案路徑
5.Client.csproj
加入這段(我就是少加這段Debugger了好久...)
<PropertyGroup>
<BlazorWebAssemblyLoadAllGlobalizationData>true</BlazorWebAssemblyLoadAllGlobalizationData>
</PropertyGroup>
6.最後看看繁體化的成果 ( •̀ ω •́ )y
小結
看了官方好多文件東拼西湊終於完成Telerik UI For Blazor 的繁體化,有了這個就可以讓很多沒有辦法custom的地方繁體化了! 希望對大家有幫助~